// 父类:公共属性和方法
function Person() {
  this.name = 'why'
  this.friends = []
}
Person.prototype.eating = function () {
  console.log(this.name + 'eating');
}



// 子类:特有属性和方法
function Student() {
  this.sno = 111
}
Student.prototype = new Person()
Student.prototype.studying = function () {
  console.log(this.name + 'studying');
}

var stu = new Student()
console.log(stu.name);
stu.eating()

// 原型链继承的弊端:
// 1.打印stu对象,某些属性是看不到的
// console.log(stu);

// 2.创建出来两个stu对象
var s1 = new Student()
var s2 = new Student()

// 这个是添加到本对象上面的,不会互相影响
s1.name = 'kobe'

// 获取引用,修改引用中的值,会相互影响
s1.friends.push('kobe')
console.log(s1.friends);
console.log(s2.friends);

// 3.在前面实现类的过程中,都没有传递参数